import { ApiProperty } from '@nestjs/swagger';

import { ResponseDto } from '@/dto/response.dto';
import { FileCollectionModel } from '@/models/file_collection.model';
import type { PageResponse } from '@/utils/types';

/**
 * 文件收集响应体
 */
export class ResponseFileCollectionDto extends ResponseDto {
  @ApiProperty({
    type: Object,
    description: '响应体',
    default: {
      list: [
        {
          task_id: 'string', // 任务id
          title: 'string', // 标题
          content: 'string', // 内容要求
          file_type: 'string', // 文件类型
          access: 'public', // 任务提交的访问权限
          access_pwd: 'string', // 任务提交的访问密码
          submitter: [1, 2, 3, 4, 5], // 指定人员
          reviewer_id: 'string', // 审核人id
          review_time: '2025-2-11 12:00', // 审核时间
          end_time: '2025-2-11 12:00', // 截止时间
          status: 1, // 状态
          pinned: 0, // 是否置顶
          created_time: '2023-08-25 09:07:08',
          updated_time: '2023-08-26 09:07:08',
        },
      ],
      total: 1,
      pageSize: 10,
      current: 1,
    },
  })
  data: PageResponse<FileCollectionModel>;
}

/**
 * 文件收集响应体
 */
export class ResponseFileCollectionOneDto extends ResponseDto {
  @ApiProperty({
    type: Object,
    description: '响应体',
    default: {
      task_id: 'string', // 任务id
      title: 'string', // 标题
      content: 'string', // 内容要求
      file_type: 'string', // 文件类型
      access: 'public', // 任务提交的访问权限
      access_pwd: 'string', // 任务提交的访问密码
      submitter: [1, 2, 3, 4, 5], // 指定人员
      reviewer_id: 'string', // 审核人id
      review_time: '2025-2-11 12:00', // 审核时间
      end_time: '2025-2-11 12:00', // 截止时间
      status: 1, // 状态
      pinned: 0, // 是否置顶
      created_time: '2023-08-25 09:07:08',
      updated_time: '2023-08-26 09:07:08',
    },
  })
  data: PageResponse<FileCollectionModel>;
}

/**
 * @description: 删除文件收集任务的响应体
 */
export class DeleteResponseDto extends ResponseDto {
  @ApiProperty({
    type: Object,
    description: '响应体',
    default: 1,
  })
  data: PageResponse<number>;
}

/**
 * @description: 删除文件收集任务
 */
export class DeleteDto {
  @ApiProperty({
    type: [String],
    description: 'id 集合',
    default: ['f45cd48b-e703-49db-91be-ae7f594e73e0', 'fa0fc96c-6c01-459d-b904-c6f65ec369b5'],
  })
  ids: string[];
}
